
module.exports = {
	_before: function () { // 通用预处理器

	},
	/**
	 * 发送手机验证码
	 * @param {string} tel 要发送的手机号码
	 * @param {int} code 要发送的验证码
	 * @param {int} expMinute 过期时间
	 * @param {string} templateId 模版Id
	 */
	
	//发送短信
	sendSms(tel,code,expMinute=5,templateId='36172'){
		
		    return uniCloud.sendSms({
		      appid: '__UNI__AC5C031',
		      phone: tel,
		      templateId: templateId, // 模板id
		      data: {
		        code: code,
		        expMinute: expMinute,
		      }
		    })
	},
	/**
	 * 作用：根据手机号获取登录用户信息
	 * @param {string} mobile 手机号码
	 */
	async getUserinfo(mobile){
		var db = uniCloud.database();
		var result = await db.collection('userinfo').field({
            _id: true,
            mobile: true,
			name:true,
			avatar:true,
			email:true,
			company:true,
			sex:true,
			age:true,
			position:true,
			create_date:true,
			create_ip:true,
			last_login_date:true,
			login_number:true,
			is_disabled:true
        }).where({mobile:mobile}).get();
		
		return {
			code:200,
			message:'请求成功',
			result:result.data[0]
		}
	},
	
	/**
	 * 作用：登录或注册
	 * @param {string} mobile 手机号码
	 * @param {string} password 密码
	 */
	async login(mobile,password){
		var db = uniCloud.database();
		//判断当前用户是否存在，不存在则注册
		var isexstsUserinfo = await db.collection('userinfo').where({mobile:mobile}).get();
		if(password){
			var userinfo = uniCloud.importObject('userinfo');
			passwordMd5 = await userinfo.md5(password);
			if(isexstsUserinfo.data && isexstsUserinfo.data[0]){//验证用户名和密码是否正确
				const result = await db.collection('userinfo').where({mobile:mobile,password:passwordMd5}).get();
				if(result.data && result.data[0]){
					//更新登录次数和登录时间
					db.collection('userinfo').where({mobile:mobile}).update({
						last_login_date:new Date().getTime(),
						login_number:db.command.inc(1)
					});
					return {
						code:200,
						message:'登录成功',
						result:result
					}
				}else{
					return {
						code:300,
						message:'用户或密码错误',
						result:result
					}
				}
				
			}else{
				return {
					code:300,
					message:'用户或密码错误',
					result:''
				}
			}
			
		}else{
			if(!isexstsUserinfo.data || !isexstsUserinfo.data[0]){//验证用户名和密码是否正确
				var data = {
					mobile:mobile,
					avatar: "https://mp-5a81006c-e233-49f0-8a6a-cb59bcd34a71.cdn.bspapp.com/avatar/default-avatar.webp"
				}
				const result = await db.collection('userinfo').add(data);
				if(result.id){
					//更新登录次数和登录时间
					db.collection('userinfo').where({mobile:mobile}).update({
						last_login_date:new Date().getTime(),
						login_number:db.command.inc(1)
					});
					return {
						code:200,
						message:'登录成功',
						result:result
					}
				}
			}else{
				//更新登录次数和登录时间
				db.collection('userinfo').where({mobile:mobile}).update({
					last_login_date:new Date().getTime(),
					login_number:db.command.inc(1)
				});
				return {
					code:200,
					message:'登录成功',
					result:''
				}
			}
		}
	}
}
